#ifndef NODE_PRI_Q_H_
#define NODE_PRI_Q_H_

#include <list>
#include <vector>

/* Manages an external vector of costs, and managed by an external GRID class 
*/
typedef std::list<int> lInt;

class NodePriQ
{
public:
    NodePriQ(std::vector<float>& ref): m_costs(ref) {}
    void Insert(int node);
    void Pop();
    const int& Front() const;
    void Resort();
    int Size(){return m_nodes.size();}
    void Clear(){m_nodes.clear();m_costs.clear();}

private:
    lInt m_nodes;
    std::vector<float>& m_costs;
};
#endif